// 版权所有2016 Go作者。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

// go:build aix | | darwin | | | drangfly | | freebsd | | | | jangfly | | freebsd | | | | | | | | | | | linux | | | | | | netbsd | | | | | | |。

package syscall

func TimespecToNsec(ts Timespec) int64 { return ts.Nano() }

// NSECOTIMESPEC将纳秒数转换为一个时间单位。
func NsecToTimespec(nsec int64) Timespec {
	sec := nsec / 1e9
	nsec = nsec % 1e9
	if nsec < 0 {
		nsec += 1e9
		sec--
	}
	return setTimespec(sec, nsec)
}

// TimevalToNsec以纳秒的形式返回存储在电视中的时间。
func TimevalToNsec(tv Timeval) int64 { return tv.Nano() }

// NSECOTIMEVAL将纳秒数转换为时间值。
func NsecToTimeval(nsec int64) Timeval {
	nsec += 999 // 四舍五入至微秒
	usec := nsec % 1e9 / 1e3
	sec := nsec / 1e9
	if usec < 0 {
		usec += 1e6
		sec--
	}
	return setTimeval(sec, usec)
}
